package com.example.system.service;

import com.example.common.core.domain.R;
import com.example.system.domain.course.dto.CourseSaveDTO;
import com.example.system.domain.course.dto.CourseQueryDTO;
import com.example.system.domain.course.dto.CourseStatusUpdateDTO;
import com.example.system.domain.course.vo.CourseDetailVO;
import com.example.system.domain.course.vo.CourseVO;

import java.util.List;

public interface ICourseService {
    int add(CourseSaveDTO courseAddDTO);

    List<CourseVO> list(CourseQueryDTO courseQueryDTO);

    CourseDetailVO detail(Long courseId);

    int edit(CourseSaveDTO courseSaveDTO);

    int delete(Long courseId);
    
    /**
     * 审核课程
     * @param courseStatusUpdateDTO 课程状态更新DTO
     * @return 操作结果
     */
    R<String> reviewCourse(CourseStatusUpdateDTO courseStatusUpdateDTO);
    
    /**
     * 获取待审核课程列表
     * @param courseQueryDTO 查询条件
     * @return 待审核课程列表
     */
    List<CourseVO> getPendingReviewCourses(CourseQueryDTO courseQueryDTO);
}
